#ifndef MYSELF_H
#define MYSELF_H

#include <QWidget>
#include <QTcpSocket>
#include "Modify.h"

namespace Ui {
class Myself;
}

class Mainpage;  // 前向声明

class Myself : public QWidget
{
    Q_OBJECT

public:
    explicit Myself(const QString &employeeId, Mainpage *mainpage, QWidget *parent = nullptr);
    ~Myself();

protected:
    // 用于拖动窗口的事件处理函数
    void mousePressEvent(QMouseEvent *event) override;
    void mouseMoveEvent(QMouseEvent *event) override;

    void paintEvent(QPaintEvent *event) override;

private slots:
    void on_returnButton_clicked();
    void on_groupItemClicked(const QModelIndex &index); // 点击考勤组时执行
    void readFromServer();  // 读取服务器数据

    void on_modify_clicked();

private:
    Ui::Myself *ui;
    Mainpage *mainpageWindow;
    QString employeeId;  // 存储工号
    QTcpSocket *tcpSocket;  // TCP套接字

    void requestEmployeeInfo();  // 请求员工信息
    void requestAttendanceGroup(const QString &groupId);  // 请求考勤组信息
    void processServerResponse(const QString &response);  // 处理服务器响应
    void updateDateListView(const QString &attendanceDays);  // 更新考勤日期视图

    // 用于记录拖动时鼠标位置的成员变量
    QPoint m_dragPosition;

    // 添加用于判断是否点击标题栏的成员变量
    bool m_isTitleBarClicked = false;
};

#endif // MYSELF_H
